Assistir um filme é uma boa forma de se divertir e ganhar conhecimento, e dessa maneira, muita das vezes acaba que nos envolvemos com a história e ficamos fãs dessa arte e dos atores envolvidos. Então, a seguir será analisado filmes que a atriz Carrie Fisher trabalhou através da base de dados da Rotten Tomatoes.

Para começar, iremos importar os dados da atriz Carrie Fisher do Rotten Tomatoes.

import_data("carrie_fisher")
filmes = read_imported_data()

Para quem não reconhece de cara ou não recorda logo da atriz pelo nome, irá lembrar de sua atuação na saga Star Wars, interpretando a Princesa Léia. Então, logo abaixo está listado os filmes com os dados dos papéis realizados e os anos de lançamentos que a atriz trabalhou presentes no Rotten Tomatoes.

filmes %>% 
    select(filme, papel, ano)
## # A tibble: 10 x 3
##    filme                                          papel                ano
##    <chr>                                          <chr>              <int>
##  1 Star Wars: The Last Jedi                       Leia                2017
##  2 Star Wars: Episode VII - The Force Awakens     Leia                2015
##  3 Sorority Row                                   Mrs. Crenshaw       2009
##  4 The Women                                      Bailey Smith        2008
##  5 Undiscovered                                   Carrie              2005
##  6 The Aristocrats                                Actor               2005
##  7 Charlie's Angels - Full Throttle               Mother Superior     2003
##  8 Jay and Silent Bob Strike Back                 Nun                 2001
##  9 Sister Act                                     Screenwriter        1992
## 10 Star Wars: Episode V - The Empire Strikes Back Princess Leia Org…  1980

Depois de listados, iremos iniciar as análises dos títulos dos filmes através das avaliações recebidas e da sua bilheteria e realizar o agrupamento dos títulos das obras.

agrupamento_h_2d = filmes %>% 
    column_to_rownames("filme") %>%
    select(avaliacao, bilheteria) %>%
    dist(method = "euclidean") %>% 
    hclust(method = "centroid")

ggdendrogram(agrupamento_h_2d, rotate = TRUE, size = 2, theme_dendro = F) + 
    labs(y = "Dissimilaridade", x = "Filme", title = "Dendrograma (centroid)")

agrupamento_h = filmes %>% 
    mutate(nome = paste0(filme, " (av=", avaliacao, ")")) %>% 
    as.data.frame() %>% 
    column_to_rownames("filme") %>% 
    select(avaliacao) %>%
    dist(method = "euclidian") %>% 
    hclust(method = "ward.D")

ggdendrogram(agrupamento_h, rotate = TRUE, size = 2, theme_dendro = F) + 
    labs(y = "Dissimilaridade", x = "Filme", title = "Dendrograma (ward.D)")

As visualizações acima, os dendogramas(calculados pelo clust centroid e ward.D) mostram que podemos formar alguns grupos de filmes que possuem dados próximos de bilheteria e avaliação. Logo abaixo, a visualização fica mais intuitiva para observar a formação desses grupos.

get_grupos <- function(agrupamento, num_grupos){
    agrupamento %>% 
        cutree(num_grupos) %>% 
        as.data.frame() %>% 
        mutate(label = rownames(.)) %>% 
        gather(key =  "k", value = "grupo", -label) %>% 
        mutate(grupo = as.character(grupo))
}

atribuicoes = get_grupos(agrupamento_h, num_grupos = 1:5)

atribuicoes = atribuicoes %>% 
    left_join(filmes, by = c("label" = "filme"))

atribuicoes %>% 
    ggplot(aes(x = "Filmes", y = avaliacao, colour = grupo)) + 
    geom_jitter(width = .02, height = 0, size = 2.5, alpha = .6) + 
    facet_wrap(~ paste(k, " grupos")) + 
    scale_color_brewer(palette = "Dark2")

Como podemos observar, com a visualização acima e o dendograma, nesse caso utilizamos a segunda forma exposta para fazer o agrupamentos dos conjuntos de dados estão distribuídos de um até quatro grupos de filmes a partir da avaliação recebida pelo público e, dessa maneira, podemos ver que 3 grupos é um bom número para realizar o agrupamento, já que os filmes possuem uma certa proximidade de similaridade de notas de avaliação.

k_escolhido = 3

atribuicoes %>% 
    filter(k == k_escolhido) %>% 
    ggplot(aes(x = reorder(label, avaliacao), y = avaliacao, colour = grupo)) + 
    geom_jitter(width = .02, height = 0, size = 4, alpha = .6) + 
    facet_wrap(~ paste(k, " grupos")) + 
    scale_color_brewer(palette = "Dark2") + 
    labs(x = "Filmes", y = "Avaliação") +
    coord_flip() 

Então, a partir das visualizações geradas, podemos destacar tipos de categorias. Sendo elas, filmes com avaliação e bilheteria alta, outro com avaliação e bilheteria médios e valores baixos tanto para avaliação, quanto para bilheteria.

atribuicoes %>%
    filter(k == k_escolhido) %>% 
    plot_ly(x = ~avaliacao,
           y = ~bilheteria,
           color = ~grupo,
           text = ~paste('Filme: ', filmes$filme,
                         '<br>Papel: ', filmes$papel,
                         '<br>Ano: ', filmes$ano)) %>% 
    layout(title = "Relação entre bilheteria e avaliação dos filmes de Carrie Fisher",
           yaxis = list(title = "Bilheteria"),
           xaxis = list(title = "Avaliação"))

Dessa forma, é interessante observar que o grupo 1(verde) possui os maiores números para avaliações e bilheteria e a grande parte dos filmes são da saga de sucesso mundial, Star Wars.